Spreadsheets have an ubiquitous role in the corporate decision making process. However, despite the fact that an ever increasing amount of information is available in near-real time in an enterprise, business planning involving spreadsheets fails to take advantage of such up to date information, as the use of these spreadsheets is still ad-hoc and labor intensive. For example, aggregation of all the spreadsheets in an organization into a master model of the corporation is not within the contemplation of traditional business practices. Logistically, locating a current version of every spreadsheet is a significant and arduous task. Thus, conventional business modeling lacks coordination and optimal effectiveness.
In particular, many businesses use spreadsheets for business models, sales forecasts, product profitability estimates, partnership models, Merger and Acquisition (M&A) analysis and a host of other business decisions. Unfortunately, spreadsheet store models in files which are typically scattered on individual hard drives around the enterprise, inaccessible, who-knows-when or by-who updated, and available only if that person is known to have the information, and is physically present in the office to transmit the file (e.g., by e-mail, etc.).
In other approaches, some organizations use software more sophisticated than spreadsheets for forecasting sales or product profitability. However, these software lack applicability to varying types of organizations and/or products. As a result, the users who create and use spreadsheets in a modern corporation can only create thousands upon thousands of knowledge islands that cannot be integrated into a comprehensive model of corporate activities and opportunities.
Furthermore, it is noted that spreadsheets are not suitable for truly effective modeling. The traditional spreadsheet paradigm provide a method of calculating the values of cells on a grid using fixed formulas that refer to other cells containing fixed formulas or fixed values. Each cell displays the value of the formula it contains. Formulas cannot alter other cells or insert or delete cells. Cells are the only method of storing values. Formulas can be recomputed automatically when any cell referred to by that formula changes. It is noted that only scalar types are supported. Some spreadsheets support formulas that return arrays. This is a mechanism to save memory, and has no functional difference from using individual cells and formulas to accomplish the same result. For example, once constructed, arrays cannot shrink or grow, a feature of arrays in most computer languages. Another drawback is that the user cannot write iterative algorithms using formulas, because there are no looping constructs and no function definition constructs available in the formula language.
Certain spreadsheets include so-called “macro” or “scripting” languages, which are essentially traditional procedural programming languages such as BASIC. These languages allow scripts to be written that use iteration to calculate values or modify the spreadsheet. A key drawback is that these features require substantial additional skill and sophistication from the user. These languages introduce variables and formulas that not shown on the spreadsheet grid. Also, traditionally, spreadsheet formulas cannot refer to variables created by scripts. Scripts must output their results by modifying spreadsheet cells or by being called as a function in a formula. Many errors that may occur in a script, such as references to non-existent cells, can only be detected as run-time errors, rather than design-time errors. The primary advanced data structure available to the scripts for manipulation and data storage is the two or three dimensional spreadsheet document itself. Conventionally, there are no specific methods or structure of these scripting languages that are designed specifically to facilitate simulation and aggregation of simulations.
Largely because of their inherent structure, spreadsheets encounter problems with respect to handling probabilistic inputs, building simulations, handling decision trees and resource dependence, re-using models, aggregating models, and re-using summary models. Building up a scaled up model of a large business with all of the varied contingencies and probabilities has not been feasible under conventional approaches. These problems are so deeply embedded in the design of spreadsheets that a solution to this collection of problems no longer fits the common conception of the term spreadsheet.
Therefore, there is a need for a system that addresses a number of drawbacks associated with conventional spreadsheets used for business models, sales forecasts, product profitability estimates, partnership models, and mergers and acquisition analysis, as well as other business decisions.